package main

import (
	"fmt"
	"os"

	"gitee.com/kvenli/go-sender/dingtalk"
	"gitee.com/kvenli/go-sender/dingtalk/message"
	"gitee.com/kvenli/go-sender/wechat"
	wechatMessage "gitee.com/kvenli/go-sender/wechat/message"
)

func main() {
	// 设置自定义日志（可选）
	// core.SetLogger(core.NewDefaultLogger())

	fmt.Println("--- DingTalk Example ---")
	dingtalkToken := "YOUR_DINGTALK_TOKEN"   // 请替换为您的钉钉机器人 Token
	dingtalkSecret := "YOUR_DINGTALK_SECRET" // 请替换为您的钉钉机器人 Secret

	if dingtalkToken == "YOUR_DINGTALK_TOKEN" || dingtalkSecret == "YOUR_DINGTALK_SECRET" {
		fmt.Println("请替换 examples/main.go 中的 DINGTALK_TOKEN 和 DINGTALK_SECRET")
	} else {
		ding := dingtalk.New(dingtalkToken, dingtalkSecret)

		// 发送文本消息
		textMsg := message.NewText()
		textMsg.SetContent("Hello from go-sender DingTalk!")
		textMsg.AppendLine("这是第二行文本。") // 使用 AppendLine
		textMsg.SetIsAll(true)
		fmt.Printf("DingTalk Text Message Content: \"%s\"\n", textMsg.GetContent()) // 使用 GetContent
		resp, err := ding.Send(textMsg)
		if err != nil {
			fmt.Printf("DingTalk Text Message Send Error: %v\n", err)
		} else {
			fmt.Printf("DingTalk Text Message Response: Code=%d, Message=%s\n", resp.Code, resp.Message)
		}

		// 发送 Markdown 消息
		markdownMsg := message.NewMarkdown()
		markdownMsg.SetTitle("DingTalk Markdown")
		markdownMsg.SetText("#### go-sender Markdown 示例")
		markdownMsg.AppendLine("> 这是 **Markdown** 消息") // 使用 AppendLine
		markdownMsg.AppendLine("> ![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png)")
		fmt.Printf("DingTalk Markdown Message Content: \"%s\"\n", markdownMsg.GetContent()) // 使用 GetContent
		resp, err = ding.Send(markdownMsg)
		if err != nil {
			fmt.Printf("DingTalk Markdown Message Send Error: %v\n", err)
		} else {
			fmt.Printf("DingTalk Markdown Message Response: Code=%d, Message=%s\n", resp.Code, resp.Message)
		}
	}

	fmt.Println("\n--- WeChat Work Example ---")
	wechatKey := "YOUR_WECHAT_KEY" // 请替换为您的企业微信机器人 Key

	if wechatKey == "YOUR_WECHAT_KEY" {
		fmt.Println("请替换 examples/main.go 中的 WECHAT_KEY")
	} else {
		wechatBot := wechat.NewBot(wechatKey)

		// 发送文本消息
		wechatTextMsg := wechatMessage.NewText()
		wechatTextMsg.SetContent("Hello from go-sender WeChat Work!")
		wechatTextMsg.AppendLine("这是第二行文本。")                                                 // 使用 AppendLine
		fmt.Printf("WeChat Work Text Message Content: \"%s\"\n", wechatTextMsg.GetContent()) // 使用 GetContent
		resp, err := wechatBot.Send(wechatTextMsg)
		if err != nil {
			fmt.Printf("WeChat Work Text Message Send Error: %v\n", err)
		} else {
			fmt.Printf("WeChat Work Text Message Response: Code=%d, Message=%s\n", resp.Code, resp.Message)
		}

		// 发送 Markdown 消息
		wechatMarkdownMsg := wechatMessage.NewMarkdown()
		wechatMarkdownMsg.SetContent("#### go-sender Markdown 示例")
		wechatMarkdownMsg.AppendLine("> 这是 **Markdown** 消息") // 使用 AppendLine
		wechatMarkdownMsg.AppendLine("> ![screenshot](https://res.wx.qq.com/a/wx_fed/webwx/res/static/img/201609/webwxgeticon.f20577c.gif)")
		fmt.Printf("WeChat Work Markdown Message Content: \"%s\"\n", wechatMarkdownMsg.GetContent()) // 使用 GetContent
		resp, err = wechatBot.Send(wechatMarkdownMsg)
		if err != nil {
			fmt.Printf("WeChat Work Markdown Message Send Error: %v\n", err)
		} else {
			fmt.Printf("WeChat Work Markdown Message Response: Code=%d, Message=%s\n", resp.Code, resp.Message)
		}

		// 发送文件消息 (需要一个存在的 test.file 文件)
		// 创建一个空的 test.file 文件用于测试
		file, err := os.Create("test.file")
		if err != nil {
			fmt.Printf("创建 test.file 失败: %v\n", err)
		} else {
			file.WriteString("This is a test file for WeChat Work.")
			file.Close()

			wechatFileMsg := wechatMessage.NewFile("test.file")
			resp, err = wechatBot.Send(wechatFileMsg)
			if err != nil {
				fmt.Printf("WeChat Work File Message Send Error: %v\n", err)
			} else {
				fmt.Printf("WeChat Work File Message Response: Code=%d, Message=%s\n", resp.Code, resp.Message)
			}
			os.Remove("test.file") // 清理测试文件
		}
	}
}
